package com.ruoyi.web.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;


/**
 * <p>
 * 工单表
 * </p>
 *
 * @author
 * @since 2025-03-10
 */
//@Getter
//@Setter
@Data
@Accessors(chain = true)
@TableName("work_form")
public class WorkForm implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "base_id", type = IdType.AUTO)
    private Long baseId;

    /**
     * 企业名称
     */
    @TableField("enterprise_name")
    private String enterpriseName;

    /**
     * 联系人
     */
    @TableField("contact_name")
    private String contactName;

    /**
     * 联系电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 问题描述
     */
    @TableField("problem_description")
    private String problemDescription;

    /**
     * 工单类型
     */
    @TableField("form_type")
    private String formType;

    /**
     * 政策工单类型
     */
    @TableField("policy_form_type")
    private String policyFormType;

    /**
     * 政策工单子类型
     */
    @TableField("policy_form_sub_type")
    private String policyFormSubType;

    /**
     * 政策工单类型
     */
    @TableField("social_resource_type")
    private String socialResourceType;

    /**
     * 发起人归属部门
     */
    @TableField("dept_id")
    private String deptId;

    /**
     * 发起人归属部门名称
     */
    @TableField("dept_name")
    private String deptName;

    /**
     * 综合组部门id
     */
    @TableField("middle_dispatch_dept_id")
    private String middleDispatchDeptId;

    /**
     * 登记时间
     */
    @TableField("register_time")
    private LocalDateTime registerTime;

    /**
     * 问题类型
     */
    @TableField("problem_type")
    private String problemType;

    /**
     * 指派备注
     */
    @TableField("dispatch_remark")
    private String dispatchRemark;

    /**
     * 派单时间
     */
    @TableField("dispatch_time")
    private LocalDateTime dispatchTime;

    /**
     * 处理部门
     */
    @TableField("dealer_dept_id")
    private String dealerDeptId;

    /**
     * 处理部门名称
     */
    @TableField("dealer_dept_name")
    private String dealerDeptName;

    /**
     * 接单确认0为否1为是
     */
    @TableField("order_receiving_confirm")
    private Byte orderReceivingConfirm;

    /**
     * 接单时间
     */
    @TableField("receive_time")
    private LocalDateTime receiveTime;

    /**
     * 响应时长/h
     */
    @TableField("response_interval")
    private String responseInterval;

    /**
     * 负责人名称
     */
    @TableField("responsible_name")
    private String responsibleName;

    /**
     * 负责人id
     */
    @TableField("responsible_id")
    private String responsibleId;

    /**
     * 接单完成确认0为否1为是
     */
    @TableField("order_complete_confirm")
    private Byte orderCompleteConfirm;

    /**
     * 工单完成时间
     */
    @TableField("complete_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING)
    private LocalDateTime completeTime;

    /**
     * 处理用时/h
     */
    @TableField("process_time_interval")
    private String processTimeInterval;

    /**
     * 工单总耗时//h
     */
    @TableField("total_time_interval")
    private String totalTimeInterval;

    /**
     * 问题类型
     */
    @TableField("deal_method")
    private String dealMethod;

    /**
     * 问题类型
     */
    @TableField("problem_reason")
    private String problemReason;

    /**
     * 经验总结
     */
    @TableField("summary_experience")
    private String summaryExperience;

    /**
     * 评价确认
     */
    @TableField("evaluation_confirmation")
    private String evaluationConfirmation;

    /**
     * 评价时间
     */
    @TableField("evaluation_time")
    private LocalDateTime evaluationTime;

    /**
     * 反馈和建议
     */
    @TableField("feedback")
    private String feedback;

    /**
     * 综合部确认是否完成 0挂起1延期2未完成3完成
     */
    @TableField("complete_confirmation")
    private String completeConfirmation;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 工单状态
     */
    @TableField("status")
    private Byte status;

    /**
     * 创建者
     */
    @TableField("create_by")
    private String createBy;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", shape = JsonFormat.Shape.STRING)
    private LocalDateTime createTime;

    /**
     * 更新者
     */
    @TableField("update_by")
    private String updateBy;

    /**
     * 更新时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 企业所在省
     */
    @TableField("province")
    private String province;

    /**
     * 企业所在市
     */
    @TableField("city")
    private String city;

    /**
     * 企业所在区/县
     */
    @TableField("county")
    private String county;

    /**
     * 是否对用户信息的省市区进行存储
     */
    @TableField(exist = false)
    private Boolean isSaveUserArea;

    /**
     * 所属行业
     */
    @TableField("industry")
    private String industry;

    /**
     * 期望答复时间
     */
    @TableField("expected_response_time")
    private LocalDate expectedResponseTime;

    /**
     * 参数密文
     */
    @TableField(exist = false)
    private String cipherText;

    /**
     * 参数是否被加密
     */
    @TableField(exist = false)
    private Boolean isEncrypted;

    /**
     * 来源
     */
    @TableField("source")
    private String source;

    /**
     * 指派审核状态（'0'：待审核，'1'：通过，'2'：驳回）
     */
    @TableField("dispatch_audit_status")
    private String dispatchAuditStatus;

    /**
     * 指派审核时间
     */
    @TableField("dispatch_audit_time")
    private LocalDateTime dispatchAuditTime;

    /**
     * 排序
     */
    @TableField("order_num")
    private Integer orderNum;

    /**
     * 期望协调的部门ID
     */
    @TableField("expected_coordination_dept_id")
    private String expectedCoordinationDeptId;

    /**
     * 期望协调的部门名称
     */
    @TableField("expected_coordination_dept_name")
    private String expectedCoordinationDeptName;

    /**
     * 转交后的处理部门ID
     */
    @TableField("secondary_dealer_dept_id")
    private String secondaryDealerDeptId;

    /**
     * 转交后的处理部门名称
     */
    @TableField("secondary_dealer_dept_name")
    private String secondaryDealerDeptName;

    /**
     * 是否确认
     */
    @TableField("is_confirm")
    private String isConfirm;

    /**
     * 确认时间
     */
    @TableField("confirm_time")
    private LocalDateTime confirmTime;

    /**
     * 是否延期处理（'1'：是）
     */
    @TableField("is_deferred_process")
    private String isDeferredProcess;

    /**
     * 是否已超时（成功指派后15天还未被处理）
     */
    @TableField(exist = false)
    private Boolean isOvertime;

    /**
     * 反馈质量分级
     */
    @TableField("feedback_quality_grading")
    private String feedbackQualityGrading;

    /**
     * 导入时间（针对批量导入的诉求进行记录）
     */
    @TableField("import_time")
    private LocalDateTime importTime;
}
